The present invention relates generally to dynamic virtual machine domain configuration and specifically to virtual machine relocation, and the management thereof.
Live virtual machine relocation is the ability to dynamically move a guest executing on one virtual machine (VM) from one hypervisor to another without needing to shut down the guest or the guest's applications. When virtual machines are executing on hardware with different architectural capabilities, or on hypervisors with differing levels of functionality, it can be problematic for a virtual machine to move from one system to another. Instructions are provided to virtual machines that enable the virtual machine to determine which facilities are available on the system on which they are executing. This is usually done when the operating system or application is started, but may also be done at any time. If the virtual machine is first started on a system with more capabilities than another system to which it could be relocated, the virtual machine could lose access to facilities it has been using when it is relocated. Problems arise when a virtual machine is allowed to relocate dynamically back and forth between systems of unlike architectural facilities.
One option to handle this issue is for the administrator to specify an explicit feature set or machine model for each virtual machine. The software would then virtualize the virtual machine's environment to work at that level. This virtualization requires customer knowledge of the facilities available on each of the systems to which the virtual machine and its applications may be relocated. This could be problematic, especially if there are facilities that are optional. When that is the case, newer models are not necessarily supersets of the older models and it could be very difficult for the administrator to understand what is available from one machine to the next. Therefore, it would be difficult for the administrator to specify a model that allows the virtual machine to move between several machines that are different models.
In addition, computer systems that support hardware and firmware updates while allowing continuity of operation may result in a change to the system's architecture, which would create additional complications in managing the available feature set. One approach to handling updates would be to require that configuration or architecture changes be accompanied with a system reset and restart. This would allow the administrator to update the feature set, and distribute that information as appropriate.